//
//  LQRequestApi.h
//  BaseProject
//
//  Created by 喻飞 on 15/5/21.
//  Copyright (c) 2015年 yuf. All rights reserved.
//

#import <Foundation/Foundation.h>
#import  "MKNetworkEngine.h"
#import "CJSONDeserializer.h"
typedef enum
{
    JY_JY_queryAdvertisment         ,//000、引导页
    JY_JY_queryAdvertismentById         ,//001、广告
    JY_JY_userLogin                     ,//002、登录
    JY_JY_appUserRegister               ,//003、注册
    JY_JY_registerCode                  ,//004、注册获取验证码
    JY_JY_updateUserPassword            ,//005、修改密码
    JY_JY_forgetPwdCode                 ,//006、忘记密码获取验证码
    JY_JY_resetPassword                 ,//007、忘记密码重置密码
    JY_JY_queryMemberInfoById           ,//0008、查询个人资料
    JY_JY_updateMember                  ,//0009、修改个人资料
    JY_JY_commentList                   ,//00010我的评论列表
    JY_JY_addMallStoreCertification     ,//00011资格认证
    JY_JY_mallLecturerAgeList           ,//12查询所有阶段
    JY_JY_mallLecturerSubjectList       ,//13查询科目
    JY_JY_mallExpertList                ,//14查询家教列表
    JY_JY_mallExpertDetails             ,//15查询家教详情
    JY_JY_mallLecturerCommentList       ,//16查询家教评价
    JY_JY_mallCollectLecturer     ,//17收藏家教
    JY_JY_canleMallCollectLecturer      ,//18取消收藏家教
    JY_JY_myMallCollectLecturerList     ,//19我收藏的家教列表
    JY_JY_addMallShippingAddress        ,//20添加收货地址
    JY_JY_updateMallShippingAddress     ,//21修改收货地址
    JY_JY_deleteMallShippingAddress     ,//22删除收货地址
    JY_JY_unreadInformation             ,//23查询未读信息数量
    JY_JY_mallMessageList               ,//24消息中心
    JY_JY_markRead                      ,//25标记消息为已读
    JY_JY_mallStoreDeveloperRecommendList       ,//26推荐学校列表
    JY_JY_userFeedbackinfo              ,//27意见反馈
    JY_JY_mallStoreTypeList             ,//28机构分类
    JY_JY_mallStoreList                 ,//29机构列表
    JY_JY_mertList                      ,//30附近学校机构
    JY_JY_mallExpertRecommendList       ,//31查询家教精彩推荐
    JY_JY_mallStoreDetails              ,//32机构详情
    JY_JY_queryMallShippingAddressById  ,//33地址详情
    JY_JY_saveMallLectureOrder          ,//34生成家教订单
    JY_JY_queryMallShippingAddress      ,//35地址列表
    JY_JY_mallGoodsRecommendList        ,//36推荐课程列表
    JY_JY_mallGoodsTypeList             ,//37获取课程分类
    JY_JY_mallGoodsList                 ,//38课程列表
    JY_JY_canleMallCollectStore         ,//39删除收藏机构
    JY_JY_mallCollectStore              ,//40收藏机构
    JY_JY_queryMemberMuseEpurseInfoById ,//41查询用户当前电子钱包余额
    JY_JY_mallOrderList                 ,//42我的订单列表
    JY_JY_addMemberUserCertification    ,//00042提交会员实名认证
    JY_JY_queryMemberEpurseFlowList     ,//43电子钱包消费/获得记录
    JY_JY_mallGoodsDetails              ,//44课程详情
    JY_JY_saveMallOrder                 ,//45生成课程订单
    JY_JY_getAlipayInfo                 ,//46获取支付宝配置信息
    JY_JY_mallStoreDeveloperDetails     ,//47学校详情
    JY_JY_collectMallStoreDeveloper     ,//48收藏学校
    JY_JY_canleCollectMallStoreDeveloper        ,//49取消收藏学校

    JY_JY_mallCollectGoods              ,//44收藏课程
    JY_JY_canleMallCollectGoods         ,//45删除收藏课程
    JY_JY_mallStoreExtendsList          ,//46机构展示
    JY_JY_applyToCash                   ,//47申请提现
    JY_JY_myMallCollectStoreList        ,//48我收藏的机构列表
    JY_JY_myMallCollectGoodsList        ,//49我收藏的课程列表
    JY_JY_contactInformation            ,//50客服电话
    JY_JY_exitLogin                     ,//51退出登录
    JY_JY_myMallLectureOrderList        ,//52我的家教订单列表
    JY_JY_myMallOrderList               ,//53我的课程订单列表
    JY_JY_mallLecturerComment          ,//54我的家教评论列表
    JY_JY_mallGoodsCommentList              ,//55我的课程评论列表
    JY_JY_memberUserCertification       ,//56查看会员实名认证
    JY_JY_mallStoreDevelperTypeList     ,//57获取学校类别
    JY_JY_mallStoreDeveloperList        ,//58获取学校列表
    JY_JY_mallLectureOrderDetails       ,//59我的家教订单详情
    JY_JY_mallOrderDetails              ,//60我的课程订单详情
    JY_JY_mallStoreCertificationList    ,//61推广人员客户信息
    JY_JY_mallStoreCertificationDetails ,//62推广人员机构信息详情
    JY_JY_mallStoreRecommendList ,//63推荐机构
    JY_JY_mallStoreCertificationEdit    ,//64推广人员编辑机构实名认证信息
    JY_JY_myMallCollectDeveloperList    ,//65我收藏的学校列表
    JY_JY_editMemberUserCertification   ,//66编辑会员实名认证
    JY_JY_muceLicence                   ,//67查询家教资质认证
    JY_JY_indexList                     ,//68首页搜索
    JY_JY_trainList                     ,//69培训搜索
    JY_JY_mallExpertExtendsList         ,//70个人展示
    JY_JY_mallGoodsComment              ,//71课程评论
    JY_JY_sysAreaList                   ,//72学校所属区域
    JY_JY_saveMemberEpurseOrder         ,//73生成充值订单
    JY_JY_getWxpayInfo         ,//74微信配置信息
    JY_JY_payOrder         ,//75支付后调用接口
    JY_JY_payByMemberEpurse ,//75余额支付
    JY_JY_mallGoodsCommentLists     ,//76课程详情评价列表
} LQRequestType;

#pragma  mark =============================================
@protocol LQRequestApiDelegate ;

@protocol LQRequestApiDelegate <NSObject>


@optional

//以数组的方式呈现
- (void)fetchDatabaseFinishedFromCache:(NSMutableDictionary*)database withTag:(NSInteger)tag;

- (void)fetchDatabaseFinished:(NSMutableDictionary*)database withTag:(NSInteger )tag;

- (void)fetchDatabaseFailed:(NSError *)error message:(NSString *)message;


@end

@interface LQRequestApi : NSObject

@property (nonatomic) BOOL isQueueRun;

@property (strong, nonatomic) NSMutableDictionary*  userInfo;   //传入的信息字典
@property (strong, nonatomic) NSDictionary*         dictionary; //返回的查询结果
@property (strong, nonatomic) NSError*              error;      //错误信息

@property (weak, nonatomic) id<LQRequestApiDelegate> delegate;

@property (strong, nonatomic) MKNetworkEngine         *  engine; //
@property (nonatomic ,strong) NSString *requestStatus;
@property (nonatomic ,strong) id dataReceiver;
@property   SEL finishSelector;
@property   SEL failSelSelector;


+(MKNetworkEngine *)shareEngine:(NSString *)hostName;
+(MKNetworkEngine *)shareEngine;
+(LQRequestApi *)sharedInstance;


/*   所有接口 调用此方法
 *   dic 传递参数
 *   interface_Path 接口地址
 *   type  POST  GET
 tag 标记
 */
-(void)requestOperationWithDic:(NSMutableDictionary  *)dic  withPath:(NSString *)interface_Path  withHttpType:(NSString *)type  withTag:(NSInteger )tag;
@end
